.. _cmcPmStReadMIOStatuses: cmcPmStReadMIOStatuses ================================ -------------------------------- SYNOPSYS ````````````` .. code-block:: none VT_I4 cmcPmStReadMioStatuses ([in] VT_I4 BoardID, [in] VT_I4 NodeId, [in] VT_I4 Channel, [out] VT_PI4 MioStates ) DESCRIPTION ````````````` - 이 함수는 현재 모션과 관련된 여러 가지 MIO 상태를 반환합니다. 각 비트별로 할당된 MIO 의 상태를 표시하므로 사용자는 비트 마스크를 수행하여 원하는 I/O 의 상태를 확인하여야 합니다. \ - 범용적인 모션 응용 프로그램에서는 MIO(Machine I/O) 상태를 표현하기 위한 용도로 본 함수의 사용 빈도가 매우 높습니다. \ - 이 함수의 사용과 호출에 있어, 제공된 ㈜커미조아의 함수 헤더 Visual Basic 에서는 함수의 첨두어 cmc 가 붙지 않습니다. PARAMETER ````````````` ▶ BoardID : 사용자가 설정한 디바이스(보드) ID. ▶ NodeId : 노드 번호. 노드 번호는 3부터 시작합니다. ▶ Channel : 축 번호. 통합 축으로 관리되는 축 번호를 의미하며, 상수 값으로 0 (Zero Based) 이상, 최대 통합 축 개수 - 1 이하의 값을 축 번호로 설정할 수 있습니다. ▶ MioStates : Machine I/O 상태 .. csv-table:: :widths: 10 10 80 :header-rows: 1 :stub-columns: 0 Bit No., Name, Meaning 0 (cmcIOST_RDY), RDY, Servo ready signal input status(1=ON) 1 (cmcIOST_ALM), ALM, Alarm signal status(1=ON) 2 (cmcIOST_ELN), -EL, Negative limit switch status(1=ON) 3 (cmcIOST_ELP), +EL, Positive limit switch status(1=ON) 4 (cmcIOST_ORG), ORG, Origin switch status(1=ON) 5 (cmcIOST_DIR), DIR, Operating direction status(1=ON) 6 (cmcIOST_EZ), EZ, Index signal status(1=ON) 7 (cmcIOST_LTC), LTC, Latch signal input status(1=ON) 8 (cmcIOST_SD), SD, Slow Down signal input status(1=ON) 9 (cmcIOST_INP), INP, In-Position signal input status(1=ON) 10 (cmcIOST_DRN), DRN, -DR input signal status(1=ON) 11 (cmcIOST_DRP), DRP, +DR input signal status(1=ON) 12 (cmcIOST_STA), STA, STA input signal status(1=ON) 13 (cmcIOST_STP), STP, STP input signal status(1=ON) 14 (cmcIOST_ALMR), ALMR, Alarm Reset output signal status(1=ON) 15 (cmcIOST_EMG), EMG, Emergency output signal status(1=ON) 16 (cmcIOST_SVON), SVON, Servo-ON output signal status(1=ON) 17 ~31, ,Reserved RETURN VALUE ````````````` .. csv-table:: :widths: 10 90 :header-rows: 1 :stub-columns: 0 Value, Meaning 음수, 수행 실패 ERR_NONE, 수행 성공 EXAMPLE ``````````````````` .. code-block:: c++ :linenos: :emphasize-lines: 5 C/C++ #include “ComiMLink3_SDK.h” #include “ComiMLink3_SDK_Def.h” long BoardID = 0; long nMioState = 0; //0번 축의 MioState Bit가 설정된 32Bit값을 반환합니다. cmcPmStReadMioStatuses(BoardID, 3, ccmcX1, &nMioState ); //nMioState 의 값을 오른쪽으로 쉬프트 연산하여, 해당 상태 값을 얻습니다. bool ALM_State = ( nMioState >> ccmcIOST_ALM ) & 0x01; bool ELP_State = ( nMioState >> ccmcIOST_ELP ) & 0x01; bool ELN_State = ( nMioState >> ccmcIOST_ELN ) & 0x01; bool ORG_State = ( nMioState >> ccmcIOST_ORG ) & 0x01;